Though the term "electronic messaging" has come often to be interperted as synonymous with "electronic mail", in the context of the present invention and this application, the term "messaging" is used in a much broader sense encompassing also any type of content; namely, the encapsulation of any data objects--text, graphics, data, digitized voice or image or the like--together with delivery, utilization and identification information that is needed to produce at each final destination, those activities specified by the encapsulated content.
Heretofore, individual and specially tailored software has been required for interworking and integrating distributed applications and processess and linking stand alone applications. The different computer platforms nave required differently designed data/message transfer treatment and linking programs and processes running in a variety of environments and with a variety of communications types or media, all specifically tailored to the particular equipment networks and protocols--and each being restricted to and useful for its environment only.
Underlying the present invention is the surprising discovery that despite such wide and often disparate variety of equipments, networks, protocols, platforms and communications techniques and environments, each requiring its individualized treatment, there can be a universality or generic approach to the programmatic interfacing or underlying message/data transport and recovery services that can indeed provide consistent, seamless and transparent connectivity betweeen applications and for processes residing in widely different computer platforms linked by a variety of different networks and protocols. This is referred to herein as heterogeneous connectivity for distributed applications and processes, with the electronics messaging systems concept of the invention being referred to as "EMS".
The highly novel approach of the present invention to attain this seemingly impossible task resides, in part, in an integrated set of software lower-level programs and routines that handle specific services-message/data recovery, security, directory services, etc., available from applications and processes within varied complex computing and communications environments, and without having to deal with the idiosynchrasies of differing networks, protocols, devices, multiple "standards", routing, recovery and other transport difficulties and differences. This is effected in EMS, by isolating applications and processes from the increasingly confusing and fastchanging communications environment, as well as from differences in varying computer operating systems, and platforms and hardware.
The inherent problems underlying implementing communications programs between computer systems, make it very difficult to handle all of the idiosynchrasies of different hardware, operating environments, protocols, and networks. Maintaining appropriate software as operating systems are upgraded and new communications features come to market is nearly impossible--especially when communications are embedded in application programs.
To obviate these difficulties, EMS has undertaken to provide:
a) message/data queuing and communications services separated from application programs and processes; PA1 b) specifics of hardware and operating environment services facility; and PA1 c) stable, consistent interface between applications and the communications environment that does not change every time a network or computing platform is added, changed or removed. PA1 Guaranteed data/message transfer--managing the transmission and receipt of messages and data so as to ensure absolutely that these are received by the intended destination; PA1 Most communications media supported--types of communication; media supported range from asynchronous dial-up modem communications to wireless RF ser-vices, such as ARDIS and RAM. Where there is a choice of media to use, EMS assists in deciding which one to employ.
The invention achieves a solution to this increasingly common, complex and costly problem through insulating both the developer and the user from the vagueries of the communications facilites and networks and from the specifics of the operating environment and hardware. EMS also provides access to the widest variety of communication facilities. In addition, EMS tracks the status of a message, and, depending on the facilites on the receiving side, can guarantee delivery to the destination application.
Through the novel approach of the EMS technique, a middleware toolkit is provided consisting of a programmatic interface and underlying message/data transport and recovery services that together provide the before-described consistent, seamless and transparent connectivity between applications and/or processes that reside in different computer platforms linked by different networks and protocols. The term "middleware" is used to connote a layer of software located between the networks, protocols and transport facilities available on a computing platform, and the applications or processes that require transport of messages and data to and from applications and processes on different computing platforms. The integrated set of lower-level programs and routines that handle specific services-message/data recovery, security, directory services--within a complex computing and communications environment and that constitutes the "tool kit", enable
Most popular computing platforms supported--EMS software runs on most of the popular computing platforms to enable developers to link programs and processes running in a variety of environments.
Present day data communication systems mandate one type of protocol to get all the data across. The present invention, on the other hand, provides a scheme at the communication layer that allows for the management of multiple communication facilities simultaneously. Upon losing one communication facility type, another communication facility type can be picked up to continue the sending of information. A management facility that manages what is called communication agents, attached to each type of com-munications facility, recognizes when and what is available to be able to transmit data. It takes a packet of information, regardless of whether it all belongs to one message or is in different messages, stages it for delivery, and hands it off to the proper communication port that is available at that point in time, moving the data through in a continuous pipe or stream. By segmenting the message into logical units of data related to one another by headers, if a communications facility, (for example TCPIP) is lost after one segment is sent, any other routes or communication facilities available to the environment are identified, and the next piece of data will accordingly be sent along such, following preset guide-lines. An upper layer protocol recognizes that data is related, but that it has been fragmented, sometimes oddly. It must be interperted, extracted and fitted together. Just as when analyzing proteins in genetics, when fracturing, it is desired to know what is missing from the chain so as to rebuild the chain to create the gene. In similar fashion,in accordance with the invention, a piece of missing data that fits in somewhere within the data chain can be requested by the receiving end from the transmitting end, no matter what the protocol that is being used, enabling interdisbursement of the movement of information or packets that belong to a single unified piece of information--and across multiple paths and communication types, from end to end, and without the application having to know anything about the communications facilities. Additionally, the present invention can run on multiple operating systems with exactly the same interface being presented to the application or the process or the user of the system. All of the specific devices, communications facilities and memory management are hidden from the users, providing a novel minimal consistent communication environment sitting on top of the operating system and facility.